429419589540ac51e9cbb3d8835040d83c0ea11e,src/core/lombok/core/configuration/FileSystemSourceCache.java,FileSystemSourceCache,sourcesForJavaFile,#URI#ConfigurationProblemReporter#,47
Before Change
try {
file = new File(uri);
if (!file.exists()) throw new IllegalArgumentException("File does not exist: " + uri);
return sourcesForDirectory(file.getParentFile(), reporter);
} catch (IllegalArgumentException e) {
// This means that the file as passed is not actually a file at all, and some exotic path system is involved.
// examples: sourcecontrol://jazz stuff, or an actual relative path (uri.isAbsolute() is completely different, that checks presence of schema!),
After Change
try {
File file = new File(uri);
if (!file.exists()) throw new IllegalArgumentException("File does not exist: " + uri);
dir = file.isDirectory() ? file : file.getParentFile();
if (dir != null) uriCache.put(javaFile,dir);
} catch (IllegalArgumentException e) {
// This means that the file as passed is not actually a file at all, and some exotic path system is involved.
// examples: sourcecontrol://jazz stuff, or an actual relative path (uri.isAbsolute() is completely different, that checks presence of schema!),
// or it's eclipse trying to parse a snippet, which has "/Foo.java" as uri.
// At some point it might be worth investigating abstracting away the notion of "I can read lombok.config if present in
// current context, and I can give you may parent context", using ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(javaFile) as basis.
// For now, we just carry on as if there is no lombok.config. (intentional fallthrough)
} catch (Exception e) {
// Especially for eclipse's sake, exceptions here make eclipse borderline unusable, so let's play nice.
ProblemReporter.error("Can't find absolute path of file being compiled: " + javaFile, e);
}
}
if (dir != null) {
try {
return sourcesForDirectory(dir, reporter);
} catch (Exception e) {